package models;
public class Status {
private long timeReceived;
private long timeProcessed;
private long timeDelivered;
private long timeFailed;
private String status;
public Status(long timeReceived, long timeProcessed, long timeDelivered, long timeFailed) {
this.timeReceived = timeReceived;
this.timeProcessed = timeProcessed;
this.timeDelivered = timeDelivered;
this.timeFailed = timeFailed;
status = "pending";
processStatus();
}
public void processStatus() {
int random;
if (System.currentTimeMillis() - timeReceived > 5000){
status = "processing";
}
timeProcessed = timeReceived + 5000;
if ((System.currentTimeMillis() - timeProcessed > 5000) && (timeDelivered == 0 && timeFailed == 0)) {
random = (int) (Math.random() * 10);
if (random <= 8) {
timeDelivered = timeProcessed + 5000;
timeFailed = 0;
status = "delivered";
} else {
timeDelivered = 0;
timeFailed = timeProcessed + 5000;
status = "failed";
}
}
if (timeDelivered != 0) {
status = "delivered";
}
if (timeFailed != 0) {
status = "failed";
}
}
public long getTimeFailed() {
return timeFailed;
}
public void setTimeFailed(int timeFailed) {
this.timeFailed = timeFailed;
}
public long getTimeReceived() {
return timeReceived;
}
public void setTimeReceived(int timeReceived) {
this.timeReceived = timeReceived;
}
public long getTimeProcessed() {
return timeProcessed;
}
public void setTimeProcessed(int timeProcessed) {
this.timeProcessed = timeProcessed;
}
public long getTimeDelivered() {
return timeDelivered;
}
public void setTimeDelivered(int timeDelivered) {
this.timeDelivered = timeDelivered;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}